ソフトウェアの基礎理論② プログラムの性質の証明――いろいろな帰納法と述語論理を利用してプログラムの性質を証明しよう